// ES6 之前 JavaScript 一直没有模块（module）体系

// 模块加载方案，最主要的有（nodejd） CommonJS规范 和（requirejs) AMD规范 两种。前者用于服务器，后者用于浏览器。

// requirejs  (AMD)
// 定义模块  define  加载模块require 

// nodejs  (common 规范)
// 抛模块  module.exports  加载模块  require()

// 社区制定的规范 

// ES6 
// 抛模块  export     载入模块  import  from 


// 文件index.js 引入模块  文件 reverse.js抛出模块

// 方式一
// index.js 
// import { reverse } from './reverse'
// console.log(reverse('abc'))//cba
// reverse.js
// export let reverse = (str) => {
//     return str.split('').reverse().join('')
// }
// export let firstName = 'sun';
// export let lastName = 'yu'


// 方式二
// index.js 
// import { reverse, firstName, lastName } from './reverse'
// console.log(reverse('abc'), firstName, lastName)//cba sun yu
// reverse.js
// let reverse = (str) => {
//     return str.split('').reverse().join('')
// }
// let firstName = 'sun';
// let lastName = 'yu';
// export { reverse, firstName, lastName }


// 方式三
// index.js 
// import { r, f, l } from './reverse'
// console.log(r('abc'), f, l) //cba sun yu
// reverse.js
// let reverse = (str) => {
//     return str.split('').reverse().join('')
// }
// let firstName = 'sun';
// let lastName = 'yu';
// export { reverse as r, firstName as f, lastName as l }


// 方式四
// index.js 
// import { reverse as r, firstName as f, lastName as l } from './reverse'
// console.log(r('abc'), f, l) //cba sun yu
// reverse.js
// let reverse = (str) => {
//     return str.split('').reverse().join('')
// }
// let firstName = 'sun';
// let lastName = 'yu';
// export { reverse, firstName, lastName }


// 方式五
// index.js 
// import str, { reverse as r, firstName as f, lastName as l } from './reverse'
// console.log(r('abc'), f, l, str) //cba sun yu hello word
// console.log(str, r('abc'), f, l) //hello word cba sun yu
// console.log(r('abc'), str, f, l) //cba hello word sun yu
// reverse.js
// let reverse = (str) => {
//     return str.split('').reverse().join('')
// }
// let firstName = 'sun';
// let lastName = 'yu';
// export { reverse, firstName, lastName }
// export default "hello word"


// 方式六
// index.js 
// import sum from './reverse';
// console.log(sum(1, 2)) //3
// reverse.js
// let reverse = (str) => {
//     return str.split('').reverse().join('')
// }
// let firstName = 'sun';
// let lastName = 'yu';
// export { reverse, firstName, lastName }
// export default (a, b) => {
//     return a + b
// }